Skip to content

Fast path for WF goals in new solver #142223

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

compiler-errors
Copy link
Member

@compiler-errors compiler-errors commented Jun 9, 2025

Hopefully self-explanatory.

@rustbot rustbot added T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) labels Jun 9, 2025
@compiler-errors
Copy link
Member Author

@bors2 try @rust-timer queue

@rust-timer

This comment has been minimized.

@rust-bors
Copy link

rust-bors bot commented Jun 9, 2025

⌛ Trying commit d5c1103 with merge d011188

To cancel the try build, run the command @bors2 try cancel.

rust-bors bot added a commit that referenced this pull request Jun 9, 2025
[perf] Fast path for WF goals in new solver

I'll clean this up obviously, but I don't want to do that if this is worthless.
@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Jun 9, 2025
@rust-bors
Copy link

rust-bors bot commented Jun 9, 2025

☀️ Try build successful (CI)
Build commit: d011188 (d011188561dc551d4a27a354ded5e031978279fa)

@rust-timer

This comment has been minimized.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (d011188): comparison URL.

Overall result: ✅ improvements - no action needed

Benchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf.

@bors rollup=never
@rustbot label: -S-waiting-on-perf -perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-2.6% [-5.4%, -0.2%] 13
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (secondary -5.2%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-5.2% [-13.6%, -1.0%] 4
All ❌✅ (primary) - - 0

Cycles

Results (secondary -3.6%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-3.6% [-4.1%, -2.7%] 6
All ❌✅ (primary) - - 0

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 751.176s -> 750.294s (-0.12%)
Artifact size: 372.27 MiB -> 372.18 MiB (-0.02%)

@rustbot rustbot removed the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Jun 9, 2025
@compiler-errors
Copy link
Member Author

@bors2 try @rust-timer queue

@rust-timer

This comment has been minimized.

@rust-bors
Copy link

rust-bors bot commented Jun 9, 2025

⌛ Trying commit ec2a6d1 with merge e484b4d

To cancel the try build, run the command @bors2 try cancel.

rust-bors bot added a commit that referenced this pull request Jun 9, 2025
[perf] Fast path for WF goals in new solver

I'll clean this up obviously, but I don't want to do that if this is worthless.
@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Jun 9, 2025
@rust-bors
Copy link

rust-bors bot commented Jun 9, 2025

☀️ Try build successful (CI)
Build commit: e484b4d (e484b4dd6e21a71897157fc93c007fa79379dbf6)

@rust-timer

This comment has been minimized.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (e484b4d): comparison URL.

Overall result: ✅ improvements - no action needed

Benchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf.

@bors rollup=never
@rustbot label: -S-waiting-on-perf -perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-1.5% [-1.5%, -1.5%] 1
Improvements ✅
(secondary)
-2.2% [-5.0%, -0.2%] 15
All ❌✅ (primary) -1.5% [-1.5%, -1.5%] 1

Max RSS (memory usage)

Results (primary 2.1%, secondary -1.0%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
5.8% [5.8%, 5.8%] 1
Regressions ❌
(secondary)
3.0% [1.2%, 4.5%] 4
Improvements ✅
(primary)
-1.5% [-1.5%, -1.5%] 1
Improvements ✅
(secondary)
-5.1% [-14.1%, -0.9%] 4
All ❌✅ (primary) 2.1% [-1.5%, 5.8%] 2

Cycles

Results (primary -1.5%, secondary -2.9%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-1.5% [-1.5%, -1.5%] 1
Improvements ✅
(secondary)
-2.9% [-3.6%, -1.6%] 7
All ❌✅ (primary) -1.5% [-1.5%, -1.5%] 1

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 753.531s -> 754.864s (0.18%)
Artifact size: 372.34 MiB -> 372.30 MiB (-0.01%)

@rustbot rustbot removed the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Jun 9, 2025
@compiler-errors compiler-errors changed the title [perf] Fast path for WF goals in new solver Fast path for WF goals in new solver Jun 10, 2025
@compiler-errors
Copy link
Member Author

r? lcnr

@compiler-errors compiler-errors marked this pull request as ready for review June 10, 2025 16:11
@rustbot rustbot added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Jun 10, 2025
@rustbot
Copy link
Collaborator

rustbot commented Jun 10, 2025

Some changes occurred to the core trait solver

cc @rust-lang/initiative-trait-system-refactor

Comment on lines 140 to 142
if arg.is_trivially_wf(self.tcx) {
Some(Certainty::Yes)
} else if self.shallow_resolve_term(arg).is_infer() {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

did u try flipping the order in this check? i.e. first shallow resolve, then check for trivial wf

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh duh lol

no, i only added the shallow resolve after but it definitely could benefit or at least shouldn't hurt

@rustbot
Copy link
Collaborator

rustbot commented Jun 11, 2025

⚠️ Warning ⚠️

  • Some commits in this PR modify submodules.

@compiler-errors
Copy link
Member Author

One more perf run I guess.

@compiler-errors
Copy link
Member Author

@bors2 try @rust-timer queue

@rust-timer
Copy link
Collaborator

Awaiting bors try build completion.

@rustbot label: +S-waiting-on-perf

@rust-bors
Copy link

rust-bors bot commented Jun 11, 2025

⌛ Trying commit c1aca5a with merge 66837d1

To cancel the try build, run the command @bors2 try cancel.

rust-bors bot added a commit that referenced this pull request Jun 11, 2025
Fast path for WF goals in new solver

Hopefully self-explanatory.
@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Jun 11, 2025
@rust-log-analyzer
Copy link
Collaborator

The job x86_64-gnu-tools failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
[RUSTC-TIMING] build_script_build test:false 0.210
[RUSTC-TIMING] cc test:false 0.651
   Compiling compiler_builtins v0.1.160 (/checkout/library/compiler-builtins/compiler-builtins)
[RUSTC-TIMING] build_script_build test:false 0.342
error[E0425]: cannot find function `atomic_cxchg_relaxed_relaxed` in module `intrinsics`
  --> library/core/src/../../stdarch/crates/core_arch/src/x86_64/cmpxchg16b.rs:58:43
   |
58 |         (Relaxed, Relaxed) => intrinsics::atomic_cxchg_relaxed_relaxed(dst, old, new),
   |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in `intrinsics`

error[E0425]: cannot find function `atomic_cxchg_relaxed_acquire` in module `intrinsics`
  --> library/core/src/../../stdarch/crates/core_arch/src/x86_64/cmpxchg16b.rs:59:43
   |
59 |         (Relaxed, Acquire) => intrinsics::atomic_cxchg_relaxed_acquire(dst, old, new),
   |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in `intrinsics`

error[E0425]: cannot find function `atomic_cxchg_relaxed_seqcst` in module `intrinsics`
  --> library/core/src/../../stdarch/crates/core_arch/src/x86_64/cmpxchg16b.rs:60:42
   |
60 |         (Relaxed, SeqCst) => intrinsics::atomic_cxchg_relaxed_seqcst(dst, old, new),
   |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in `intrinsics`

error[E0425]: cannot find function `atomic_cxchg_acquire_relaxed` in module `intrinsics`
  --> library/core/src/../../stdarch/crates/core_arch/src/x86_64/cmpxchg16b.rs:61:43
   |
61 |         (Acquire, Relaxed) => intrinsics::atomic_cxchg_acquire_relaxed(dst, old, new),
   |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in `intrinsics`

error[E0425]: cannot find function `atomic_cxchg_acquire_acquire` in module `intrinsics`
  --> library/core/src/../../stdarch/crates/core_arch/src/x86_64/cmpxchg16b.rs:62:43
   |
62 |         (Acquire, Acquire) => intrinsics::atomic_cxchg_acquire_acquire(dst, old, new),
   |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in `intrinsics`

error[E0425]: cannot find function `atomic_cxchg_acquire_seqcst` in module `intrinsics`
  --> library/core/src/../../stdarch/crates/core_arch/src/x86_64/cmpxchg16b.rs:63:42
   |
63 |         (Acquire, SeqCst) => intrinsics::atomic_cxchg_acquire_seqcst(dst, old, new),
   |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in `intrinsics`

error[E0425]: cannot find function `atomic_cxchg_release_relaxed` in module `intrinsics`
  --> library/core/src/../../stdarch/crates/core_arch/src/x86_64/cmpxchg16b.rs:64:43
   |
64 |         (Release, Relaxed) => intrinsics::atomic_cxchg_release_relaxed(dst, old, new),
   |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in `intrinsics`

error[E0425]: cannot find function `atomic_cxchg_release_acquire` in module `intrinsics`
  --> library/core/src/../../stdarch/crates/core_arch/src/x86_64/cmpxchg16b.rs:65:43
   |
65 |         (Release, Acquire) => intrinsics::atomic_cxchg_release_acquire(dst, old, new),
   |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in `intrinsics`

error[E0425]: cannot find function `atomic_cxchg_release_seqcst` in module `intrinsics`
  --> library/core/src/../../stdarch/crates/core_arch/src/x86_64/cmpxchg16b.rs:66:42
   |
66 |         (Release, SeqCst) => intrinsics::atomic_cxchg_release_seqcst(dst, old, new),
   |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in `intrinsics`

error[E0425]: cannot find function `atomic_cxchg_acqrel_relaxed` in module `intrinsics`
  --> library/core/src/../../stdarch/crates/core_arch/src/x86_64/cmpxchg16b.rs:67:42
   |
67 |         (AcqRel, Relaxed) => intrinsics::atomic_cxchg_acqrel_relaxed(dst, old, new),
   |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in `intrinsics`

error[E0425]: cannot find function `atomic_cxchg_acqrel_acquire` in module `intrinsics`
  --> library/core/src/../../stdarch/crates/core_arch/src/x86_64/cmpxchg16b.rs:68:42
   |
68 |         (AcqRel, Acquire) => intrinsics::atomic_cxchg_acqrel_acquire(dst, old, new),
   |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in `intrinsics`

error[E0425]: cannot find function `atomic_cxchg_acqrel_seqcst` in module `intrinsics`
  --> library/core/src/../../stdarch/crates/core_arch/src/x86_64/cmpxchg16b.rs:69:41
   |
69 |         (AcqRel, SeqCst) => intrinsics::atomic_cxchg_acqrel_seqcst(dst, old, new),
   |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in `intrinsics`

error[E0425]: cannot find function `atomic_cxchg_seqcst_relaxed` in module `intrinsics`
  --> library/core/src/../../stdarch/crates/core_arch/src/x86_64/cmpxchg16b.rs:70:42
   |
70 |         (SeqCst, Relaxed) => intrinsics::atomic_cxchg_seqcst_relaxed(dst, old, new),
   |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in `intrinsics`

error[E0425]: cannot find function `atomic_cxchg_seqcst_acquire` in module `intrinsics`
  --> library/core/src/../../stdarch/crates/core_arch/src/x86_64/cmpxchg16b.rs:71:42
   |
71 |         (SeqCst, Acquire) => intrinsics::atomic_cxchg_seqcst_acquire(dst, old, new),
   |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in `intrinsics`

error[E0425]: cannot find function `atomic_cxchg_seqcst_seqcst` in module `intrinsics`
  --> library/core/src/../../stdarch/crates/core_arch/src/x86_64/cmpxchg16b.rs:72:41
   |
72 |         (SeqCst, SeqCst) => intrinsics::atomic_cxchg_seqcst_seqcst(dst, old, new),
   |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in `intrinsics`

error: can't mark as unstable using an already stable feature
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/sha.rs:149:1
    |
149 |   #[unstable(feature = "sha512_sm_x86", issue = "126624")]
    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this feature is already stable
150 | / pub fn _mm256_sha512msg1_epi64(a: __m256i, b: __m128i) -> __m256i {
151 | |     unsafe { transmute(vsha512msg1(a.as_i64x4(), b.as_i64x2())) }
152 | | }
    | |_- the stability attribute annotates this item
    |
help: consider removing the attribute
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/sha.rs:149:1
    |
149 | #[unstable(feature = "sha512_sm_x86", issue = "126624")]
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: can't mark as unstable using an already stable feature
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/sha.rs:162:1
    |
162 |   #[unstable(feature = "sha512_sm_x86", issue = "126624")]
    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this feature is already stable
163 | / pub fn _mm256_sha512msg2_epi64(a: __m256i, b: __m256i) -> __m256i {
164 | |     unsafe { transmute(vsha512msg2(a.as_i64x4(), b.as_i64x4())) }
165 | | }
    | |_- the stability attribute annotates this item
    |
help: consider removing the attribute
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/sha.rs:162:1
    |
162 | #[unstable(feature = "sha512_sm_x86", issue = "126624")]
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: can't mark as unstable using an already stable feature
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/sha.rs:178:1
    |
178 |   #[unstable(feature = "sha512_sm_x86", issue = "126624")]
    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this feature is already stable
179 | / pub fn _mm256_sha512rnds2_epi64(a: __m256i, b: __m256i, k: __m128i) -> __m256i {
180 | |     unsafe { transmute(vsha512rnds2(a.as_i64x4(), b.as_i64x4(), k.as_i64x2())) }
181 | | }
    | |_- the stability attribute annotates this item
    |
help: consider removing the attribute
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/sha.rs:178:1
    |
178 | #[unstable(feature = "sha512_sm_x86", issue = "126624")]
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: can't mark as unstable using an already stable feature
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/sha.rs:191:1
    |
191 |   #[unstable(feature = "sha512_sm_x86", issue = "126624")]
    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this feature is already stable
192 | / pub fn _mm_sm3msg1_epi32(a: __m128i, b: __m128i, c: __m128i) -> __m128i {
193 | |     unsafe { transmute(vsm3msg1(a.as_i32x4(), b.as_i32x4(), c.as_i32x4())) }
194 | | }
    | |_- the stability attribute annotates this item
    |
help: consider removing the attribute
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/sha.rs:191:1
    |
191 | #[unstable(feature = "sha512_sm_x86", issue = "126624")]
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: can't mark as unstable using an already stable feature
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/sha.rs:204:1
    |
204 |   #[unstable(feature = "sha512_sm_x86", issue = "126624")]
    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this feature is already stable
205 | / pub fn _mm_sm3msg2_epi32(a: __m128i, b: __m128i, c: __m128i) -> __m128i {
206 | |     unsafe { transmute(vsm3msg2(a.as_i32x4(), b.as_i32x4(), c.as_i32x4())) }
207 | | }
    | |_- the stability attribute annotates this item
    |
help: consider removing the attribute
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/sha.rs:204:1
    |
204 | #[unstable(feature = "sha512_sm_x86", issue = "126624")]
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: can't mark as unstable using an already stable feature
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/sha.rs:222:1
    |
222 |   #[unstable(feature = "sha512_sm_x86", issue = "126624")]
    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this feature is already stable
223 | / pub fn _mm_sm3rnds2_epi32<const IMM8: i32>(a: __m128i, b: __m128i, c: __m128i) -> __m128i {
224 | |     static_assert!(
225 | |         IMM8 == (IMM8 & 0x3e),
226 | |         "IMM8 must be an even number in the range `0..=62`"
227 | |     );
228 | |     unsafe { transmute(vsm3rnds2(a.as_i32x4(), b.as_i32x4(), c.as_i32x4(), IMM8)) }
229 | | }
    | |_- the stability attribute annotates this item
    |
help: consider removing the attribute
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/sha.rs:222:1
    |
222 | #[unstable(feature = "sha512_sm_x86", issue = "126624")]
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: can't mark as unstable using an already stable feature
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/sha.rs:238:1
    |
238 |   #[unstable(feature = "sha512_sm_x86", issue = "126624")]
    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this feature is already stable
239 | / pub fn _mm_sm4key4_epi32(a: __m128i, b: __m128i) -> __m128i {
240 | |     unsafe { transmute(vsm4key4128(a.as_i32x4(), b.as_i32x4())) }
241 | | }
    | |_- the stability attribute annotates this item
    |
help: consider removing the attribute
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/sha.rs:238:1
    |
238 | #[unstable(feature = "sha512_sm_x86", issue = "126624")]
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: can't mark as unstable using an already stable feature
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/sha.rs:250:1
    |
250 |   #[unstable(feature = "sha512_sm_x86", issue = "126624")]
    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this feature is already stable
251 | / pub fn _mm256_sm4key4_epi32(a: __m256i, b: __m256i) -> __m256i {
252 | |     unsafe { transmute(vsm4key4256(a.as_i32x8(), b.as_i32x8())) }
253 | | }
    | |_- the stability attribute annotates this item
    |
help: consider removing the attribute
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/sha.rs:250:1
    |
250 | #[unstable(feature = "sha512_sm_x86", issue = "126624")]
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: can't mark as unstable using an already stable feature
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/sha.rs:262:1
    |
262 |   #[unstable(feature = "sha512_sm_x86", issue = "126624")]
    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this feature is already stable
263 | / pub fn _mm_sm4rnds4_epi32(a: __m128i, b: __m128i) -> __m128i {
264 | |     unsafe { transmute(vsm4rnds4128(a.as_i32x4(), b.as_i32x4())) }
265 | | }
    | |_- the stability attribute annotates this item
    |
help: consider removing the attribute
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/sha.rs:262:1
    |
262 | #[unstable(feature = "sha512_sm_x86", issue = "126624")]
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: can't mark as unstable using an already stable feature
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/sha.rs:274:1
    |
274 |   #[unstable(feature = "sha512_sm_x86", issue = "126624")]
    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this feature is already stable
275 | / pub fn _mm256_sm4rnds4_epi32(a: __m256i, b: __m256i) -> __m256i {
276 | |     unsafe { transmute(vsm4rnds4256(a.as_i32x8(), b.as_i32x8())) }
277 | | }
    | |_- the stability attribute annotates this item
    |
help: consider removing the attribute
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/sha.rs:274:1
    |
274 | #[unstable(feature = "sha512_sm_x86", issue = "126624")]
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: can't mark as unstable using an already stable feature
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/kl.rs:130:1
    |
130 |   #[unstable(feature = "keylocker_x86", issue = "134813")]
    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this feature is already stable
131 |   #[cfg_attr(test, assert_instr(loadiwkey))]
132 | / pub unsafe fn _mm_loadiwkey(
133 | |     control: u32,
134 | |     integrity_key: __m128i,
135 | |     key_lo: __m128i,
...   |
138 | |     loadiwkey(integrity_key, key_lo, key_hi, control);
139 | | }
    | |_- the stability attribute annotates this item
    |
help: consider removing the attribute
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/kl.rs:130:1
    |
130 | #[unstable(feature = "keylocker_x86", issue = "134813")]
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: can't mark as unstable using an already stable feature
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/kl.rs:156:1
    |
156 |   #[unstable(feature = "keylocker_x86", issue = "134813")]
    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this feature is already stable
157 |   #[cfg_attr(test, assert_instr(encodekey128))]
158 | / pub unsafe fn _mm_encodekey128_u32(key_params: u32, key: __m128i, handle: *mut u8) -> u32 {
159 | |     let EncodeKey128Output(control, key0, key1, key2, _, _, _) = encodekey128(key_params, key);
160 | |     ptr::write_unaligned(handle.cast(), [key0, key1, key2]);
161 | |     control
162 | | }
    | |_- the stability attribute annotates this item
    |
help: consider removing the attribute
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/kl.rs:156:1
    |
156 | #[unstable(feature = "keylocker_x86", issue = "134813")]
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: can't mark as unstable using an already stable feature
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/kl.rs:179:1
    |
179 |   #[unstable(feature = "keylocker_x86", issue = "134813")]
    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this feature is already stable
180 |   #[cfg_attr(test, assert_instr(encodekey256))]
181 | / pub unsafe fn _mm_encodekey256_u32(
182 | |     key_params: u32,
183 | |     key_lo: __m128i,
184 | |     key_hi: __m128i,
...   |
190 | |     control
191 | | }
    | |_- the stability attribute annotates this item
    |
help: consider removing the attribute
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/kl.rs:179:1
    |
179 | #[unstable(feature = "keylocker_x86", issue = "134813")]
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: can't mark as unstable using an already stable feature
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/kl.rs:201:1
    |
201 |   #[unstable(feature = "keylocker_x86", issue = "134813")]
    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this feature is already stable
202 |   #[cfg_attr(test, assert_instr(aesenc128kl))]
203 | / pub unsafe fn _mm_aesenc128kl_u8(output: *mut __m128i, input: __m128i, handle: *const u8) -> u8 {
204 | |     let AesOutput(status, result) = aesenc128kl(input, handle);
205 | |     *output = result;
206 | |     status
207 | | }
    | |_- the stability attribute annotates this item
    |
help: consider removing the attribute
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/kl.rs:201:1
    |
201 | #[unstable(feature = "keylocker_x86", issue = "134813")]
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: can't mark as unstable using an already stable feature
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/kl.rs:217:1
    |
217 |   #[unstable(feature = "keylocker_x86", issue = "134813")]
    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this feature is already stable
218 |   #[cfg_attr(test, assert_instr(aesdec128kl))]
219 | / pub unsafe fn _mm_aesdec128kl_u8(output: *mut __m128i, input: __m128i, handle: *const u8) -> u8 {
220 | |     let AesOutput(status, result) = aesdec128kl(input, handle);
221 | |     *output = result;
222 | |     status
223 | | }
    | |_- the stability attribute annotates this item
    |
help: consider removing the attribute
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/kl.rs:217:1
    |
217 | #[unstable(feature = "keylocker_x86", issue = "134813")]
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: can't mark as unstable using an already stable feature
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/kl.rs:233:1
    |
233 |   #[unstable(feature = "keylocker_x86", issue = "134813")]
    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this feature is already stable
234 |   #[cfg_attr(test, assert_instr(aesenc256kl))]
235 | / pub unsafe fn _mm_aesenc256kl_u8(output: *mut __m128i, input: __m128i, handle: *const u8) -> u8 {
236 | |     let AesOutput(status, result) = aesenc256kl(input, handle);
237 | |     *output = result;
238 | |     status
239 | | }
    | |_- the stability attribute annotates this item
    |
help: consider removing the attribute
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/kl.rs:233:1
    |
233 | #[unstable(feature = "keylocker_x86", issue = "134813")]
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: can't mark as unstable using an already stable feature
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/kl.rs:249:1
    |
249 |   #[unstable(feature = "keylocker_x86", issue = "134813")]
    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this feature is already stable
250 |   #[cfg_attr(test, assert_instr(aesdec256kl))]
251 | / pub unsafe fn _mm_aesdec256kl_u8(output: *mut __m128i, input: __m128i, handle: *const u8) -> u8 {
252 | |     let AesOutput(status, result) = aesdec256kl(input, handle);
253 | |     *output = result;
254 | |     status
255 | | }
    | |_- the stability attribute annotates this item
    |
help: consider removing the attribute
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/kl.rs:249:1
    |
249 | #[unstable(feature = "keylocker_x86", issue = "134813")]
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: can't mark as unstable using an already stable feature
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/kl.rs:265:1
    |
265 |   #[unstable(feature = "keylocker_x86", issue = "134813")]
    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this feature is already stable
266 |   #[cfg_attr(test, assert_instr(aesencwide128kl))]
267 | / pub unsafe fn _mm_aesencwide128kl_u8(
268 | |     output: *mut __m128i,
269 | |     input: *const __m128i,
270 | |     handle: *const u8,
...   |
277 | |     status
278 | | }
    | |_- the stability attribute annotates this item
    |
help: consider removing the attribute
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/kl.rs:265:1
    |
265 | #[unstable(feature = "keylocker_x86", issue = "134813")]
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: can't mark as unstable using an already stable feature
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/kl.rs:288:1
    |
288 |   #[unstable(feature = "keylocker_x86", issue = "134813")]
    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this feature is already stable
289 |   #[cfg_attr(test, assert_instr(aesdecwide128kl))]
290 | / pub unsafe fn _mm_aesdecwide128kl_u8(
291 | |     output: *mut __m128i,
292 | |     input: *const __m128i,
293 | |     handle: *const u8,
...   |
300 | |     status
301 | | }
    | |_- the stability attribute annotates this item
    |
help: consider removing the attribute
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/kl.rs:288:1
    |
288 | #[unstable(feature = "keylocker_x86", issue = "134813")]
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: can't mark as unstable using an already stable feature
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/kl.rs:311:1
    |
311 |   #[unstable(feature = "keylocker_x86", issue = "134813")]
    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this feature is already stable
312 |   #[cfg_attr(test, assert_instr(aesencwide256kl))]
313 | / pub unsafe fn _mm_aesencwide256kl_u8(
314 | |     output: *mut __m128i,
315 | |     input: *const __m128i,
316 | |     handle: *const u8,
...   |
323 | |     status
324 | | }
    | |_- the stability attribute annotates this item
    |
help: consider removing the attribute
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/kl.rs:311:1
    |
311 | #[unstable(feature = "keylocker_x86", issue = "134813")]
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: can't mark as unstable using an already stable feature
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/kl.rs:334:1
    |
334 |   #[unstable(feature = "keylocker_x86", issue = "134813")]
    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this feature is already stable
335 |   #[cfg_attr(test, assert_instr(aesdecwide256kl))]
336 | / pub unsafe fn _mm_aesdecwide256kl_u8(
337 | |     output: *mut __m128i,
338 | |     input: *const __m128i,
339 | |     handle: *const u8,
...   |
346 | |     status
347 | | }
    | |_- the stability attribute annotates this item
    |
help: consider removing the attribute
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/kl.rs:334:1
    |
334 | #[unstable(feature = "keylocker_x86", issue = "134813")]
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: can't mark as unstable using an already stable feature
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/mod.rs:775:1
    |
775 | #[unstable(feature = "keylocker_x86", issue = "134813")]
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this feature is already stable
776 | pub use self::kl::*;
    | -------------------- the stability attribute annotates this item
    |
help: consider removing the attribute
   --> library/core/src/../../stdarch/crates/core_arch/src/x86/mod.rs:775:1
    |
775 | #[unstable(feature = "keylocker_x86", issue = "134813")]
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

For more information about this error, try `rustc --explain E0425`.
[RUSTC-TIMING] core test:false 23.326
error: could not compile `core` (lib) due to 37 previous errors

@rust-bors
Copy link

rust-bors bot commented Jun 11, 2025

💔 Test failed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-perf Status: Waiting on a perf run to be completed. S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants